﻿#region COPYRIGHT© 2005-2013 Phillip Clark. All rights reserved.

// For licensing information see License.txt (MIT style licensing).

#endregion

namespace FlitBit.Parse
{
	/// <summary>
	///   Contains static declarations and constants.
	/// </summary>
	public static class Constants
	{
		/// <summary>
		///   Constant for the lowline (underscore).
		/// </summary>
		public const char LowLine = '_';

		/// <summary>
		///   Alphabet sorted by use in programming.
		/// </summary>
		public static readonly char[] AsciiSortedAlphabet =
			"eEtTaAiIoOnNsSrRhHlLcCdDuUmMfFpPgGyYbBwWvVkKxXqQjJzZ".ToCharArray();

		/// <summary>
		///   Decimal digits.
		/// </summary>
		public static readonly char[] Digits = "1234567890".ToCharArray();

		/// <summary>
		///   Hexidecimal digits.
		/// </summary>
		public static readonly char[] HexidecimalDigits = "1234567890AaBbCcDcEeFf".ToCharArray();

		/// <summary>
		///   Array of characters used as line terminators.
		/// </summary>
		public static readonly char[] LineTerminatorChars = new char[]
		{
			'\r' // carriage return
			, '\n' // line feed
			, '\u0085' // next line
			, '\u2028' // line separator
			, '\u2029' // paragraph separator
		};

		/// <summary>
		///   Array of characters used as line terminators.
		/// </summary>
		public static readonly char[] WhitespaceChars = new char[]
		{
			' ' // space
			, '\t' // tab
			, '\r' // carriage return
			, '\n' // line feed
			, '\u0008' // backspace
			, '\u000B' // vertical tab
			, '\u000C' // form feed
			, '\u0085' // next line
			, '\u2028' // line separator
			, '\u2029' // paragraph separator
		};
	}
}